package practice.Day22;

import java.util.Scanner;

/**
 * @Author quan
 * @Description 小异的升级之路:做出来了100%
 * @Date 2023/6/1 17:37
 */
public class Num1_Game {
    /**
     * 3，50表示怪物的数量和小易的初始能力值
     * 输入n行：表示怪物的防御能力：50,105,200
     * 最终输出100+5（最大公约数）+5(最大公约数) = 110
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
//            int n = 3;
            //定义妖怪的个数
            int n = sc.nextInt();
            //定义初始能量
//            int energy = 50;
            int energy = sc.nextInt();
            //初始化妖怪的能量
            int[] arr = new int[n];
//            int[] arr = {50,105,200};
            //将用户输入的妖怪能量写入到数组中
            for (int i = 0; i < arr.length; i++) {
                arr[i] = sc.nextInt();
            }
            for (int i = 0; i < arr.length; i++) {
                if(energy >= arr[i]){
                    energy = energy + arr[i];
//                    System.out.println(energy);
                }else{
                    energy = energy + maxCommon(energy,arr[i]);
//                    System.out.println(maxCommon(energy,arr[i]));
                }
            }
            System.out.println(energy);
        }
    }

    /**
     * 求出两个数字的最大公约数:这里有问题
     * @param a
     * @param b
     * @return
     */
    public static int maxCommon(int a,int b){
        //先找出两个数中的较小数
        int min = Math.min(a,b);
        int max = Math.max(a,b);
        int common = 1;
        int maxCommon = 1;
        for (int i = 1; i < min+1; i++) {
            //先找出两个数字的所有公约数
            if(max % i == 0 && min % i == 0){
                common = i;
            }
            //再找出最大公约数
            if(maxCommon < common){
                maxCommon = common;
            }
        }
        return maxCommon;
    }
}
